/*

    This file is part of Hometree.

    Hometree is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Hometree is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with Hometree.  If not, see <http://www.gnu.org/licenses/>.

    Copyright 2011,2012 Roman Held

*/
/********************************************************************\
                            Includes
\********************************************************************/
#include <iostream>
#include <QDateTime>
#include "htr/htrlog.h"

/********************************************************************\
                          Global Variables
\********************************************************************/
HtrLog *HtrLog::mInstance = NULL;

/********************************************************************\
                            Macros
\********************************************************************/
#define TO_CSTR(s) s.toAscii().data()

/********************************************************************\
                          Implementation
\********************************************************************/
/*--------------------------------------------------------------------
*/
HtrLog *HtrLog::instance()
{
  if (!mInstance)
    mInstance = new HtrLog();
  return mInstance;
}

/*--------------------------------------------------------------------
*/
void HtrLog::info(const QString &ident, const QString &msg)
{
  std::cout << TO_CSTR(nowString())
            << ";"
            << TO_CSTR(QString("%1").arg(ident))
            << ";"
            << "I"
            << ";"
            << TO_CSTR(msg)
            << std::endl;
}

/*--------------------------------------------------------------------
*/
void HtrLog::warning(const QString &ident, const QString &msg)
{
  std::cout << TO_CSTR(nowString())
            << ";"
            << TO_CSTR(QString("%1").arg(ident))
            << ";"
            << "W"
            << ";"
            << TO_CSTR(msg)
            << std::endl;
}

/*--------------------------------------------------------------------
*/
HtrLog::HtrLog()
{
}

/*--------------------------------------------------------------------
*/
HtrLog::~HtrLog()
{
}

/*--------------------------------------------------------------------
*/
QString HtrLog::nowString()
{
  return QDateTime::currentDateTime().toString("yy/MM/dd hh:mm:ss");
}
